namespace EPPlayer
{
    /// <summary>
    /// Similar to Faction and Background, all we care about are the modifiers.
    /// Characters can have more than one Trait.
    /// todo: CP adjustment for Traits.
    /// </summary>
    public class Trait : AttachableAttribute
    {
        private readonly string Source;
        private readonly bool IsPositive;
        private readonly int CPCost;
        public const string AttributeColor = "Trait";

        internal Trait(
            string Name,
            string Source,
            bool IsPositive,
            int CPCost,
            Modifiers Modifiers,
            string Description = null)
            : base(Name, AttributeColor, Modifiers, Description)
        {
            this.Source = Source;
            this.IsPositive = IsPositive;
            this.CPCost = CPCost;
        }
        public string source
        {
            get { return this.Source; }
        }
        public bool isPositive
        {
            get { return this.IsPositive; }
        }
        public int cpCost
        {
            get { return this.CPCost; }
        }
    }
}